/* 
    使用 -  *  /  %  ** 运算时，如果两边有一个或者两个非数值时，会隐式转换成数值并做相对的运算
    数组和对象在隐式转换时都是默认优先转为字符串 在转数值
    NaN和任何内容 做非字符拼接运算 都是NaN
*/

// console.log('' - 5) // -5
// console.log([1,2] - 3) // NaN
// console.log([3] - 1) //2
// console.log({a:23} - 1) // NaN

// + 运算符如果两段时数字 ， 则进行加法运算
// 如果一端是字符串，则字符串拼接
// 有一端是数组或者对象，优先转为字符串，然后进行字符串拼接
// 两端数值也不是字符串、只有布尔值，null undefined 都会直接隐式转换成数字型运算


console.log([1,2] + 1) // 1，21 
console.log(Number([[]]) === 0) // true
console.log(String([[]]) === '') // true

console.log({a:1} + 1) // '[object Object]1'

console.log(undefined + false) // NaN
console.log(false + null) // 0